Описание протокола NEC

В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной  паузы:

Начало каждого бита определяется импульсом длиной 560 мкс (одновременно этот импульс сигнализирует о конце предыдущего бита). Длина следующей за импульсом паузы определяет логическое значение бита.

Для определения конца последнего бита, после него также отправляется импульс длиной 560 мкс.

Команды передаются пакетами. Каждый пакет начинается со стартовой последовательности - импульса длиной 9 мс и паузы длиной 4,5 мс. Пакет имеет размер 4 байта (32 бита), содержащие адрес устройства и команду. Каждый байт пакета передаётся младшим битом вперёд.

Существуют две версии протокола NEC: стандартная и расширенная. В стандартной версии адрес и команда имеют длину 8 бит. Пакет при этом состоит из адреса устройства, инвертированного адреса, команды, инвертированной команды, и имеет следующий вид:

В расширенной версии используется 16-ти битный адрес и 8-ми битная команда. Пакет при этом состоит из младшего байта адреса, старшего байта адреса, команды, инвертированной команды, и имеет следующий вид:

При удержании кнопки посылка повторно не передаётся. Вместо этого каждые 110 мс передаётся специальный код повтора (рисунок слева).

Хотелось бы добавить, что при передаче высокого уровня сигнала пульт посылает на частоте несущей (обычно 36 или 38 кГц) пачку импульсов (обычно со скважностью 4). Длительность пачки определяется временем, в течении которого должен передаваться высокий уровень. При передаче низкого уровня сигнала пульт ничего не передаёт.

Фотоприёмники же зачастую имеют выходы подтянутые к питанию и при отсутствии сигнала на входе (когда пульт ничего не передаёт) у них на выходе висит высокий уровень, а при наличии импульсов на частоте несущей (когда пульт передаёт высокий уровень) у них на выходе устанавливается низкий уровень.

Для корректного принятия информации от пульта эти обстоятельства обязательно необходимо учитывать.